package com.hp.gxw.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author huangping
 * @since 2023-03-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BaseCommonDataDictionaryAndSet implements Serializable {

    private static final long serialVersionUID=1L;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    private Long constantId;

    private String constantUrl;

    /**
     * 表字段名
     */
    private String tableField;

    /**
     * 字段说明
     */
    private String fieldExplain;

    /**
    * 是否主键
     */
    private String tableKey;

    /**
     * 字段类型
     */
    private String fieldType;

    /**
     * 小数位数
     */
    private Integer numericScal;

    /**
     * 实体类属性
     */
    private String entityField;

    /**
     * 是否显示
     */
    private Boolean defaultShow;

    /**
     * 是否作为查询条件
     */
    private Boolean queryCriteria;

    /**
     * 查询条件文本类型
     */
    private String queryCriteriaType;

    /**
     * 排序方式
     */
    private Boolean sort;

    /**
     * 唯一性
     */
    private Boolean uniqueness;

    /**
     * 是否为禁用字段
     */
    private Boolean disable;

    /**
     * 新增表单时使用：枚举下拉列表
     */
    private String enumList;

    /**
     * 新增表单时使用：是否必填
     */
    private Boolean required;

    /**
     * 联查另外表
     */
    private Long queryConstantId;

    /**
     * 联查另外表的条件字段
     */
    private String associatedFiled;

    /**
     * 联查另外表的条件字段
     */
    private String defaultValue;

    /**
     * 联查表集合
     */
    @TableField(exist = false)
    private List<BaseCommonQueryTable> queryTableList;
}
